#include <cstdio>   // 包含 snprintf 函数
#include <cstdlib>  // 包含 putenv 和 malloc 函数
#include <cstring>  // 包含 strlen 函数
namespace CERT_PUTENV_AUTO_VARIABLE {
	int func_bad(const char* var) {
		char env[1024];
		int retval = snprintf(env, sizeof(env), "TEST=%s", var);
		if (retval < 0 || (size_t)retval >= sizeof(env)) {

		}

		return putenv(env);
	}

	int func_good1(const char* var) {
		static char env[1024];
		int retval = snprintf(env, sizeof(env), "TEST=%s", var);
		if (retval < 0 || (size_t)retval >= sizeof(env)) {
		
		}

		return putenv(env);
	}

	int func_good2(const char* var) {
		const char* env_format = "TEST=%s";
		const size_t len = strlen(var) + strlen(env_format);
		char* env = (char*)malloc(len);
		if (env == NULL) {
			return -1;
		
		}
		int retval = snprintf(env, len, env_format, var);
		if (retval < 0 || (size_t)retval >= len) {

		}
		if (putenv(env) != 0) {
			free(env);
			return -1;
		}
		return 0;
	}
}